<?php
class Ext_Queue_RpcClient
{

    protected $_queue;
    protected $_serverClass;
    protected $_className;

    public function __construct( $queue, $className = null )
    {
        $this->_queue = $queue;
        $this->_className = $className;
    }

    /**
     * Nombre de la clase del otro lado de la cola.
     * Por ahora no se pueden pasar parametros al constructor, eso queda como utilidad
     * para el que utilice el server si quiere inicializarlo de algun modo.
     *
     * @param string $className
     */
    public function setClass ( $className )
    {
        $this->_className = $className;
    }

    public function __call( $name, $arguments )
    {
        if ( $this->_className == null ) {
            throw new Exception( "Invalid class name" );
        }
        // Call this function over activeMQ queue.
        $message = new Ext_Queue_ExecMessage();
        $message->setFunction( $name );
        $message->setArguments( $arguments );
        return $this->_queue->send( $message->getMessage() );
    }
}
